public class Book {
    final int k = 3;
    static final int m = 1;
    static Book book = new Book();
    static int amount = 112;
    static {
        System.out.println("aaa");
    }
    // 如果静态变量的赋值在静态代码块进行之前赋值 那么会先输出 bbb ,再输出aaa

    int price = 110;
    final int i = 0;

/*
顺序：
    类的静态变量会先进行初始化然后->执行类的静态代码块->给类的静态变量赋值
    实例化类的时候会先 初始化变量 并赋值，然后执行代码块，最后执行构造方法
*/
    {
        System.out.println("bbb"+price);
    }

    int b = 20;

    Book() {
        System.out.println("书的构造方法");
        System.out.println("price=" + price + ",amount=" + amount);
    }

    public static void staticFunction() {
        System.out.println("书的静态方法");
    }

    public static void main(String[] args) {
        staticFunction();
        System.out.println("--------");
        new Book();
    }

}